﻿using System.Collections.Generic;

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Zarion_Quest.Base
{
    /// <summary>
    /// Classe para controlar mais facilmente todos os inimigos do jogo.
    /// Ela é estática e todos os inimigos criados, extendidos de BaseEnemy, são adicionados aqui automáticamente.
    /// </summary>
    static class EnemyManager
    {
        // TODO alguma coisa quando a inspiração voltar...perdi a inspiração pra esse cara...
        private static List<Object2D> enemyList;
        public static List<Object2D> EnemyList
        {
            get
            {
                if (enemyList == null)
                    enemyList = new List<Object2D>();
                return enemyList;
            }
        }

        public static void UpdateEnemies(GameTime gameTime)
        {
            List<Object2D> exclusionList = new List<Object2D>();
            foreach (BaseEnemy enemy in enemyList)
            {
                if (enemy.IsLive)
                    enemy.Update(gameTime);
                else
                    exclusionList.Add(enemy);
            }
            foreach (BaseEnemy enemy in exclusionList)
            {
                enemyList.Remove(enemy);
            }
        }

        public static void DrawEnemies(SpriteBatch spriteBatch)
        {
            foreach (BaseEnemy enemy in enemyList)
            {
                enemy.Draw(spriteBatch);
            }
        }
    }
}
